Many contemporary computer systems, such as multiple processor systems and networked systems, include shared resource units, such as file servers and processors, to allow system resources, such as data, programs and storage space and various functions or operations, to be shared among a plurality of users. Typical examples of shared resource units are file servers wherein a number of local or networked users or systems may share the file server to have common access to and share resources such as storage space, data and programs, or the shared processors of multiple processor systems wherein tasks are assigned to processors depending on availability, priority or processor functionality.
A recurring problem with such shared resources, however, is that the systems sharing a resource frequently execute different operating environments, such as UNIX and Microsoft Windows.TM., and thereby communicate with the shared resource unit with different resource protocols, or may execute a number of different rescue protocols performing a similar or common function or operation within the same operating environment. In addition, the shared resource unit itself may be required to execute multiple operating environments in order to interoperate with the systems sharing that resource. As a result, not only must a shared resource unit respond to or execute multiple resource protocols, but the function values used to access a shared resource, that is, the names or identifiers used to identify and refer to a particular file, program, function, operation or user or to control the execution of a program, function or operation, will typically vary from operating environment to operating environment or from resource protocol to resource protocol, even though they are similar in function.
In the instance of a file server system, for example, a request for access to a given file will typically include the file name and an identifier of the requesting user or system. The file server will use the file name to locate and access file and the requester identification to determine the requester's access rights to the file by comparing the requester identification with a file "owner" identification associated with the file, wherein an "owner" of a file is a user having access rights to the file. If, for example, the file request is submitted by a system executing UNIX and the Network File System (NFS) protocol, the requester identification will be in the form of a User Identifier (UID), which would require that the file server maintain "owner" identifications in the form of UIDs. If the file request is submitted by a system executing Microsoft Windows and the Common Internet File System (CIFS) protocol, the requester identification will be in the form of a Security Identifier (SID) and the file server would be required to maintain "owner" identifications in the form of SIDs. In this example, therefore, the system operational unit, that is, the file server, must respond to or execute two operating environments, UNIX and Windows, and respond to two protocols, NFS and CIFS, and must maintain and recognize two different but equivalent function values, UIDs and SIDs, that may be associated with each shared file.
It will be apparent that the requirement of maintaining, recognizing and responding to a different set of function values for each operating environment or resource protocol for each shared resource managed by a shared resource unit will result in such problems as increased cost and complexity and increased processing time with a resulting decrease in operating speed. In addition, it will be recognized that at the time of creation of or initial access to a system resource such as a program or data file, only the function values of the operating environment or resource protocol creating or initially accessing the system resource will be known and may be associated with the resource. As such, each subsequent access of the system resource initiated from a different operating environment or resource protocol will require additional processing time and resources to correlate the function values of each new environment with the resource. Also, errors may occur when, for example, a file server does not recognize the "name" of a valid owner of a file when that name is submitted in a request from a different operating environment or resource protocol, or confuses an invalid "owner name" from one environment with a valid "owner name"from a different environment or protocol. Errors may also arise when the shared resource attempts to correlate function values from new environments or protocols with function values of previously known environments or protocols.
The present invention provides a solution to these and other problems of the prior art.